/*****************************************************************************
*
*  PROJECT:     SlipStream
*               (Timer Classes)
*  LICENSE:     GNU General Public License v3 - http://www.gnu.org/licenses/gpl.html

*  DEVELOPERS:  Philip Farquharson	<B00137077@studentmail.uws.ac.uk>
*				John Gray			<B00145524@studentmail.uws.ac.uk>		
*				Zohaib Bhatti		<B00104280@studentmail.uws.ac.uk>
*				Euan Hislop			<B00138636@studentmail.uws.ac.uk>
*
*****************************************************************************/
#ifndef CTIMERMANAGER_H
#define CTIMERMANAGER_H

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <list>
#include <cassert>
#include "CTimer.h"
#include "CSingleton.h"
#include "lib.h"

using namespace std;

class CTimerManager : public CSingleton < CTimerManager >
{
private:
	std::list<CTimer*> timers;
	std::list<CTimer*> deadpool;

public:
	CTimerManager ();
	~CTimerManager ( void );
	CTimer* createTimer ( TimerCallback CallBack, unsigned int ms, int repeat, int value );
	void Proc ( void );
};
#endif